// admin/system/service/sys_logininfor_service.go
package service

import (
	repo "go-admin1/admin/system/dao"
	"go-admin1/admin/system/model"
)

// SysLogininforService 登录信息服务接口
type SysLogininforService interface {
	Create(logininfor *model.SysLogininfor) error
	GetByID(id int64) (*model.SysLogininfor, error)
	Delete(id int64) error
	List(page, pageSize int) ([]*model.SysLogininfor, int64, error)
	CleanAll() error
}

type sysLogininforService struct {
	logininforDao repo.SysLogininforDao
}

func (s sysLogininforService) Create(logininfor *model.SysLogininfor) error {
	return s.logininforDao.Create(logininfor)
}

func (s sysLogininforService) GetByID(id int64) (*model.SysLogininfor, error) {
	logininfor, err := s.logininforDao.GetByID(id)
	if err != nil {
		return nil, err
	}
	return logininfor, nil
}

func (s sysLogininforService) Delete(id int64) error {
	return s.logininforDao.Delete(id)
}

func (s sysLogininforService) List(page, pageSize int) ([]*model.SysLogininfor, int64, error) {
	logininfors, total, err := s.logininforDao.List(page, pageSize)
	if err != nil {
		return nil, 0, err
	}
	return logininfors, total, nil
}

func (s sysLogininforService) CleanAll() error {
	return s.logininforDao.CleanAll()
}

// NewSysLogininforService 创建登录信息服务实例
func NewSysLogininforService() SysLogininforService {
	return &sysLogininforService{
		logininforDao: repo.NewSysLogininforDao(),
	}
}
